package com.gxwzxy.medic.service.Impl;

import java.util.List;

import com.gxwzxy.medic.dao.MenuDao;
import com.gxwzxy.medic.dao.Impl.MenuDaoImpl;
import com.gxwzxy.medic.entity.Menu;
import com.gxwzxy.medic.entity.otherentity.MenuTree;
import com.gxwzxy.medic.service.MenuService;
import com.gxwzxy.medic.until.PageBean;

public class MenuServiceImpl implements MenuService {

	/**
	 * 鏍规嵁userId鏌ヨ瑙掕壊鎵�鎷ユ湁鐨勬潈闄怚d
	 */
	@Override
	public List<Menu> findMenuByUserId(String userId) {
		MenuDao md = new MenuDaoImpl();
		return md.findMenuByUserId(userId);
	}

	/**
	 * 获取全部的menu数据
	 */
	@Override
	public List<Menu> findMenu() {
		MenuDao md = new MenuDaoImpl();
		return md.findMenu();
	}

	/**
	 * 分页查询
	 */
	@Override
	public void pageMenu(PageBean<Menu> pu) {
		MenuDao md = new MenuDaoImpl();
		//获取菜单总的记录数
		int totalCount = md.findMenuSize();
		//设置PageBean的总记录数为从数据库中实时统计的数据数totalCount
		pu.setTotalCount(totalCount);
		//获取分页的开始下标和查询的数据长度，并把查询的数据存放到分页实体类的全局变量中去去
		int start = pu.getStartRow();
		int size = pu.getSize();
		List<Menu> lm = md.findMenuIndex(start,size);
		pu.setList(lm);
	}
	
	/**
	 * 娣诲姞鏉冮檺
	 */
	@Override
	public boolean addMenu(Menu m) {
		MenuDao md = new MenuDaoImpl();
		return md.addMenu(m);
	}

	/**
	 * 根据menuId查询具体的某一个menu
	 */
	@Override
	public List<Menu> findMenuBymenuId(String menuId) {
		MenuDao md = new MenuDaoImpl();
		return md.findMenuBymenuId(menuId);
	}

	/**
	 * 閫氳繃id淇敼鏉冮檺
	 */
	@Override
	public boolean updateMenu(Menu m,String rmenuId) {
		MenuDao md = new MenuDaoImpl();
		return md.updateMenu(m,rmenuId);
	}

	/**
	 * 根据menuId删除一条具体的数据
	 */
	@Override
	public boolean MenuDelete(String menuId) {
		MenuDao md = new MenuDaoImpl();
		return md.MenuDelete(menuId);
	}

	/**
	 * 鏍规嵁瑙掕壊缂栧彿roleId鏌ヨ鏉冮檺
	 */
	@Override
	public List<MenuTree> findMenuByroleId(String roleId) {
		MenuDao md = new MenuDaoImpl();
		//查询所有的menu
		List<MenuTree> lmt = md.TreeShow();
		//根据角色id查询到该角色的菜单并比对全部的菜单
		List<Menu> lm = md.findMenuByroleId(roleId);
		if(lmt!=null&&lm!=null) {
			for(int i = 0;i<lm.size();i++) {
				for(int j = 0;j<lmt.size();j++) {
					if(lm.get(i).getMenuId().equals(lmt.get(j).getId())) {
						lmt.get(j).setChecked(true);
					}
				}
			}
		}
		return lmt;
	}
	
	/**
	 * 鏍规嵁role淇敼role_menu鍏宠仈琛�
	 */
	@Override
	public boolean updateMenuByroleId(String roleId, String[] menuId) {
		MenuDao md = new MenuDaoImpl();
		return md.updateMenuByroleId(roleId,menuId);
	}

	/**
	 * 根据menupId查询二级菜单
	 */
	@Override
	public List<Menu> findSecondMenu(String menupId) {
		MenuDao md = new MenuDaoImpl();
		return md.findSecondMenu(menupId);
	}

}
